package com.dream.mapper;

import com.dream.common.utils.payutils.bean.AliRedPackageBean;
import com.dream.common.utils.payutils.bean.WorkedRedPackageBean;
import com.dream.dto.console.StatisticsSum;
import com.dream.dto.response.GroupMemberRedPack;
import com.dream.entity.OverViewDataBean;
import com.dream.entity.PickerOverViewBean;
import org.apache.ibatis.annotations.Param;
import tk.mybatis.mapper.common.Mapper;

import java.util.List;

public interface RedPackageSendMapper extends Mapper<WorkedRedPackageBean> {

    StatisticsSum selectSumByUser(@Param("bijiAccount") String bijiAccount);

    List<GroupMemberRedPack> selectGroupSumByUser(@Param("bijiAccount") String bijiAccount);

    GroupMemberRedPack selectGroupMemberRedPackInfo(String bijiAccount, String memberId);

    WorkedRedPackageBean selectRedPackageById(@Param("redPackageID") String redPackageID);

    /**
     * 插入发包人红包数据到数据库
     */
    void insertRedPackageSend(AliRedPackageBean aliRedPackageBean);

    /**
     * 通过指定的机器人账号获取所有的发包信息
     */
    OverViewDataBean queryRedPackageSendInfo(String robotUser, long startTime, long endTime);

    /**
     * 通过指定的机器人账号获取所有的发包信息并分组
     */
    List<PickerOverViewBean> querySenderDataList(String robotUser, long startTime, long endTime);

    /**
     * 通过指定的机器人账号获取指定用户的发包数据
     */
    PickerOverViewBean querySenderDataByUserId(String robotUser, String userId);

    /**
     * 通过指定的机器人账号获取所有的发包信息
     */
    int deleteRedPackageSendInfoByUserId(String robotUser, String userId, long startTime, long endTime);

    /**
     * 通过指定的机器人账号获取所有的发包信息
     */
    int deleteRedPackageSendInfo(String robotUser, long startTime, long endTime);

    /**
     * 通过用户id获取发包详情
     */
    List<OverViewDataBean> querySendDetailByUserId(String robotUser, long startTime, long endTime, long userId);

    /**
     * 获取发包统计
     */
    List<OverViewDataBean> getSendOverViewData(String robotUser, long startTime, long endTime);

}